package com.testing.driverSelf;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

/**
 * @author li
 * Chrome浏览器驱动类
 */
public class GoogleDriver {

    private WebDriver driver = null;

    public GoogleDriver(String driverPath) {
        // 设置chrome的路径
        System.setProperty("webdriver.chrome.driver", driverPath);
        // 设置临时环境变量，指定chrome使用静默模式，减少日志输出
        System.setProperty("webdriver.chrome.silentOutPut", "true");
        /**
         * ChromeOption对象可以为chrome启动时定制许多参数，需要用到更多参数可以查阅chromeoptions相关说明
         */
        // chrome浏览器参数对象
        ChromeOptions options = new ChromeOptions();
        // 设置自动化启动时，不显示正在受到自动化软件控制的提示栏
        options.setExperimentalOption("excludeSwitches", new String[] {"enable-automation", "load-extension"});
        /**
         * 加载chrome用户文件，这里使用的是浏览器默认存储的用户文件目录，在chrome浏览器里通过地址栏里输入chrome://version进行访问
         * 能够看到个人资料路径，注意个人资料路径中复制时，只需要用到User Data这一级，不需要Default这一级
         * 使用时会和手动打开的浏览器冲突，注意不要同时打开，复制一份到别的路径进行引用，这样不会和手动打开的浏览器产生冲突
         */
//        options.addArguments("--user-data-dir=C:\\Users\\li\\AppData\\Local\\Google\\Chrome\\User Data\\");
        options.addArguments("--user-data-dir=D:\\Derom\\chromeData");
        // 最大化浏览器窗口
        options.addArguments("--start-maximized");

        try {
            this.driver = new ChromeDriver(options);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("log--error：创建driver失败");
            System.out.println(e.getMessage());
        }
    }

    public WebDriver getDriver() {
        return this.driver;
    }

}
